package sohsite.usuario.servlets;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sohsite.excecao.EntradaInexistenteException;
import sohsite.excecao.MensagensJSP;
import sohsite.fachada.SistemaSohSite;
import sohsite.usuario.Usuario;
import sohsite.util.Endereco;

public class ServletAtualizarUsuario extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void doPost (HttpServletRequest req,
			HttpServletResponse res)
	throws ServletException, IOException
	{
		SistemaSohSite sohSite = SistemaSohSite.getInstancia();

		int idUsuario = -1;
		try{
			idUsuario = Integer.parseInt(req.getParameter("idUsuario"));
		}catch(NumberFormatException e){
			res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.CampoInvalido);
			return;
		}

		String nome = req.getParameter("nome") == null?"":req.getParameter("nome");
		String cpf = req.getParameter("cpf");
		String email = req.getParameter("email") == null? "" : req.getParameter("email");
		String login = req.getParameter("login") == null? "" : req.getParameter("login");
		String senha = req.getParameter("senha")== null? "" : req.getParameter("senha");
		
		if (nome.equals("") || email.equals("") || login.equals("") || senha.equals(""))
		{
			res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.DadosObrigatoriosUsuario);
			return;
		}

		String bairro = req.getParameter("bairro");
		String rua = req.getParameter("rua");
		String cidade = req.getParameter("cidade");
		String estado = req.getParameter("estado");
		String complemento = req.getParameter("complemento");
		String cep = req.getParameter("cep");

		String telRes = req.getParameter("telRes");
		String telCel = req.getParameter("telCel");
		String telCom = req.getParameter("telCom");

		Usuario usuario = null;
		try {
			usuario = sohSite.getControladorUsuario().consultarUsuario(idUsuario);
		} catch (EntradaInexistenteException e) {
			res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.UsuarioInexistente);
			return;
		}

		Endereco endereco = usuario.getEndereco();
		endereco.setBairro(bairro);
		endereco.setCep(cep);
		endereco.setCidade(cidade);
		endereco.setEstado(estado);
		endereco.setComplemento(complemento);
		endereco.setRua(rua);

		//atualizando...
		usuario.setCpf(cpf);
		usuario.setLogin(login);
		usuario.setNome(nome);
		usuario.setEmail(email);
		usuario.setSenha(senha);
		usuario.setEndereco(endereco);
		usuario.setTelRes(telRes);
		usuario.setTelCel(telCel);
		usuario.setTelCom(telCom);
		sohSite.getControladorUsuario().atualizarUsuario(usuario);
		
		res.sendRedirect("jsp/usuario/buscarUsuario.jsp");

	}
}